package com.enjava;

import java.util.Calendar;
import java.util.Date;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.RequestScoped;
import javax.faces.component.html.HtmlCommandButton;
import javax.faces.component.html.HtmlInputText;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.EntityTransaction;

@ManagedBean(name="quilloBean")
@RequestScoped
public class MiBean {
	
	Long id;
	String mensaje="bienvenido a quillo jsf world!";
	Date fechaCreacion;
	HtmlCommandButton boton;
	Curso curso;
	
	
	@ManagedProperty(value = "#{emf}")
	EMF emf;
	public String envia(){
		Object value = boton.getValue();
		System.out.println(value);
		System.out.println("enviando..."+boton);
		boton.setDisabled(true);
		boton.setStyle("background-color:pink");
		
		EntityManager em = emf.getEM();
		
		EntityTransaction transaccion = em.getTransaction();
		transaccion.begin();
		Alumno alumno = new Alumno();
		alumno.setNombre(mensaje);
		em.persist(alumno);
		transaccion.commit();
		em.close();
		return null;
	}
	
	public String busca(){
		System.out.println("buscando...");
		
		EntityManager em = emf.getEM();
		
		EntityTransaction transaccion = em.getTransaction();
	
		curso = em.find(Curso.class, id);

		System.out.println(curso.getNombre());
		System.out.println(curso.getExamenes());
		

		return "curso";
		
		
	}
	
	
	public String grabar(){
		System.out.println("grabando...");
		
//		EntityManager em = emf.getEM();
//		
//		EntityTransaction transaccion = em.getTransaction();
//		transaccion.begin();
//		
//		transaccion.commit();

		return null;
		
	}
	
	
	public String persisteJPA(){
		
		EntityManager em = emf.getEM();
		
		EntityTransaction transaccion = em.getTransaction();
		transaccion.begin();
		
		Curso java = new Curso();
		java.setNombre("java");

		Examen trimestre1 = new Examen();
		trimestre1.setCurso(java);
		trimestre1.setNumero(1);
		
		Examen trimestre2 = new Examen();
		trimestre2.setCurso(java);
		trimestre2.setNumero(2);
		
		Alumno alum1 = new Alumno();
		alum1.setNombre("alum1");
		alum1.setCurso(java);
		
		
		Alumno alum2 = new Alumno();
		alum2.setNombre("alum2");
		alum2.setCurso(java);
		
		
		em.persist(java);
		em.persist(alum1);
		em.persist(alum2);
		em.persist(trimestre1);
		em.persist(trimestre2);
		
		transaccion.commit();
		em.close();
		
		return null;
	}
	
	public HtmlCommandButton getBoton() {
		return boton;
	}

	public void setBoton(HtmlCommandButton boton) {
		this.boton = boton;
	}


	
	public MiBean() {
		super();
		fechaCreacion=Calendar.getInstance().getTime();
	}

	public Date getFechaCreacion() {
		return fechaCreacion;
	}

	public String getMensaje() {
		return mensaje;
	}

	public void setMensaje(String mensaje) {
		this.mensaje = mensaje;
	}

	public EMF getEmf() {
		return emf;
	}

	public void setEmf(EMF emf) {
		this.emf = emf;
	}

	public Long getId() {
		return id;
	}

	public void setId(Long id) {
		this.id = id;
	}

	public Curso getCurso() {
		return curso;
	}

	public void setCurso(Curso curso) {
		this.curso = curso;
	}


	
	
	
	
	
	
	

}
